package ru.edu.niimm.mapping.linguistic;

import java.util.List;
import java.util.ArrayList;

/**

 */
public class ThesTemplates
{

    // templates
    /**
    * Сущ.
    */
    public static final Template S = t2();
    private static Template t2()
    {
        GramUnit gu1 = new GramUnit("С", "", true);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        return new Template(1, list);

    }

     // templates
    /**
    * Сущ.
    */
    public static final Template G = t_GLAGOL();
    private static Template t_GLAGOL()
    {
        GramUnit gu1 = new GramUnit("Г", "", true);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        return new Template(1, list);

    }

    /**
    * Прил.
    */
    public static final Template P = t5();
//    public static final Template t5_en = t5_en();

    private static Template t5()
    {
        GramUnit gu1 = new GramUnit("П", "", true);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        return new Template(1, list);
    }

    /**
    * Сущ. + Прил.
    */
    public static final Template PS = t3();
    private static Template t3()
    {
        GramUnit gu1 = new GramUnit("П", "", true);
        GramUnit gu2 = new GramUnit("С", "", false);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        list.add(gu2);
        return new Template(2, list);


    }

    public static final Template INFINITIVE = t_INF();
    private static Template t_INF()
    {
        GramUnit gu1 = new GramUnit("ИНФИНИТИВ", "", true);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        return new Template(1, list);
    }

    public static final Template SP = t3_i();
    private static Template t3_i()
    {
        GramUnit gu1 = new GramUnit("С", "", true);
        GramUnit gu2 = new GramUnit("П", "", false);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        list.add(gu2);
        return new Template(2, list);
    }

    /**
    * Сущ. + Сущ. в род. падеже
    */
    public static final Template SS = t1();
    private static Template t1()
    {
        GramUnit gu1 = new GramUnit("С", "", true);
        GramUnit gu2 = new GramUnit("С", "", false);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        list.add(gu2);
        return new Template(2, list);
    }

    public static final Template PPS = t_pps();
    private static Template t_pps()
    {
        GramUnit gu1 = new GramUnit("П", "", true);
        GramUnit gu2 = new GramUnit("П", "", false);
        GramUnit gu3 = new GramUnit("С", "", false);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        list.add(gu2);
        list.add(gu3);
        return new Template(2, list);

    }

    public static final Template SPS = t_sps();
    private static Template t_sps()
    {
        GramUnit gu1 = new GramUnit("С", "", true);
        GramUnit gu2 = new GramUnit("П", "", false);
        GramUnit gu3 = new GramUnit("С", "", false);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        list.add(gu2);
        list.add(gu3);
        return new Template(2, list);
    }

    public static final Template SPP = t_spp();
    private static Template t_spp()
    {
        GramUnit gu1 = new GramUnit("С", "", true);
        GramUnit gu2 = new GramUnit("П", "", false);
        GramUnit gu3 = new GramUnit("П", "", false);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        list.add(gu2);
        list.add(gu3);
        return new Template(2, list);
    }

    /**
    * Сущ. + Прич.
    */
    public static final Template PRICHASTIE = t4();

    private static Template t4()
    {
        GramUnit gu1 = new GramUnit("ПРИЧАСТИЕ", "", true);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        return new Template(1, list);
    }

    public static final Template SSS = t3words();
    private static Template t3words()
    {
        GramUnit gu1 = new GramUnit("С", "", true);
        GramUnit gu2 = new GramUnit("С", "", false);
        GramUnit gu3 = new GramUnit("С", "", false);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        list.add(gu2);
        list.add(gu3);
        return new Template(3, list);
    }

    public static final Template SPRICHASTIES = t_S_PRICHASTIE_S();
    private static Template t_S_PRICHASTIE_S()
    {
        GramUnit gu1 = new GramUnit("С", "", true);
        GramUnit gu2 = new GramUnit("ПРИЧАСТИЕ", "", false);
        GramUnit gu3 = new GramUnit("С", "", false);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        list.add(gu2);
        list.add(gu3);
        return new Template(3, list);
    }


    public static final Template dyyyy = d1();

    private static Template d1()
    {
        GramUnit gu1 = new GramUnit("YYYY", "", true);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        return new Template(1, list);
    }

    public static final Template century = cent1();

    private static Template cent1()
    {
        GramUnit gu1 = new GramUnit("XX", "", true);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        return new Template(1, list);
    }

    public static final Template INFINITIVES = t_INFINITIVE_S();
    private static Template t_INFINITIVE_S()
    {
        GramUnit gu1 = new GramUnit("ИНФИНИТИВ", "", true);
        GramUnit gu2 = new GramUnit("С", "", false);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        list.add(gu2);
        return new Template(2, list);
    }

    /**
    * из шести слов
    */
    public static final Template t6_all = t6_all();

    public static Template t6_all()
    {
        GramUnit gu1 = new GramUnit("", "", true);
        GramUnit gu2 = new GramUnit("", "", false);
        GramUnit gu3 = new GramUnit("", "", false);
        GramUnit gu4 = new GramUnit("", "", false);
        GramUnit gu5 = new GramUnit("", "", false);
        GramUnit gu6 = new GramUnit("", "", false);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        list.add(gu2);
        list.add(gu3);
        list.add(gu4);
        list.add(gu5);
        list.add(gu6);
        return new Template(6, list);


    }

    /**
    * из пяти слов
    */
    public static final Template t5_all = t5_all();

    public static Template t5_all()
    {
        GramUnit gu1 = new GramUnit("", "", true);
        GramUnit gu2 = new GramUnit("", "", false);
        GramUnit gu3 = new GramUnit("", "", false);
        GramUnit gu4 = new GramUnit("", "", false);
        GramUnit gu5 = new GramUnit("", "", false);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        list.add(gu2);
        list.add(gu3);
        list.add(gu4);
        list.add(gu5);
        return new Template(5, list);


    }

    /**
    * из четырёх слов
    */
    public static final Template t4_all = t3_all();

    public static Template t4_all()
    {
        GramUnit gu1 = new GramUnit("", "", true);
        GramUnit gu2 = new GramUnit("", "", false);
        GramUnit gu3 = new GramUnit("", "", false);
        GramUnit gu4 = new GramUnit("", "", false);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        list.add(gu2);
        list.add(gu3);
        list.add(gu4);
        return new Template(4, list);
    }
    /**
    * из трёх слов
    */
    public static final Template t3_all = t3_all();

    public static Template t3_all()
    {
        GramUnit gu1 = new GramUnit("", "", true);
        GramUnit gu2 = new GramUnit("", "", false);
        GramUnit gu3 = new GramUnit("", "", false);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        list.add(gu2);
        list.add(gu3);
        return new Template(3, list);


    }

    /**
    * из трёх слов
    */
    public static final Template t2_all = t2_all();

    public static Template t2_all()
    {
        GramUnit gu1 = new GramUnit("", "", true);

        GramUnit gu2 = new GramUnit("", "", false);
        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);
        list.add(gu2);

        return new Template(2, list);


    }

    public static final Template t1_all = t1_all();

    public static Template t1_all()
    {
        GramUnit gu1 = new GramUnit("", "", true);


        List<GramUnit> list = new ArrayList<GramUnit>();
        list.add(gu1);


        return new Template(1, list);


    }
}
